package com.smsc.headend.task.engine.service.asset;

import com.smsc.headend.module.asset.dmo.ComConfigDMO;
import com.smsc.headend.module.asset.dmo.MeterConfigDMO;
import com.smsc.headend.module.asset.entity.ComEntity;
import com.smsc.headend.module.asset.entity.Dcu;
import com.smsc.headend.module.asset.entity.Meter;
import com.smsc.headend.module.common.entity.DeviceOperation;
import com.smsc.headend.module.data.dto.ClearLocalCacheDto;
import com.smsc.headend.module.event.entity.MapEventAlarm;
import com.smsc.headend.module.vending.entity.MapVendingDataItem;
import com.smsc.headend.task.engine.po.DeviceDetail;

import java.util.List;

public interface AssetService {
    DeviceDetail getDeviceDetail(Long comId, Long meterId);

    Meter getMeterById(Long meterId);

    MeterConfigDMO getMeterConfigById(Long meterId);

    ComEntity getComById(Long comId);

    ComConfigDMO getComConfigById(Long comId);

    Dcu getDcuById(Long dcuId);

    List<Long> getOnlineComIds();

    String getSystemProperty(String key);

    DeviceOperation getDictionary(Long id, Integer type);

    void clearDcuCacheById(Long dcuId);

    void clearMeterCacheById(Long meterId);

    MapVendingDataItem getMultispeakDataItem(Long subDataItemId, Integer type, Long lpDataItemId);

    MapEventAlarm getMapEventAlarm(Integer eventType);

    void updateComCache(ClearLocalCacheDto dto);


}
